1. Field of the Invention
The present invention relates generally to an apparatus and method for interleaving and deinterleaving data in a communication system, and more particularly, to an apparatus and method for interleaving and deinterleaving data in a wireless communication system.
2. Description of the Related Art
Communication systems are generally classified into wired and wireless communication systems. Wireless communication systems are constantly evolving, aiming to enable users to communicate while in motion. Beyond the early stage of voice communications only, wireless communication systems now provide a variety of communication services including data communications. Voice communications is a real-time service, while in contrast, data communications is a non-real-time service. Even though transmitted data is lost in the real-time service, data retransmission is generally insignificant. In comparison, the non-real-time service requires data retransmission for more accurate data transmission. For the data retransmission in the non-real-time service, Hybrid Automatic Repeat reQuest (HARQ) is used.
Orthogonal Frequency Division Multiplexing (OFDM) has recently been studied to provide high-speed data transmission on wired/wireless channels in mobile communication systems. OFDM is a special type of Multi-Carrier Modulation (MCM) in which a serial bit stream is converted to parallel bits and modulated to mutually orthogonal subcarrier channels. An OFDM-based technology for identifying a plurality of users by a plurality of subcarriers, that is, allocating different subcarriers to different users is called Orthogonal Frequency Division Multiple Access (OFDMA).
HARQ is a significant technology that increases the reliability of data transmission and throughput in a packet mobile communication system. It is a combination of Automatic Repeat reQuest (ARQ) and Forward Error Correction (FEC). ARQ is widely used for wireless/wired data communication systems. In ARQ, a transmitter transmits data packets labeled with sequence numbers in a method and a receiver requests retransmission of a packet with a lost sequence number to the transmitter. In this manner, data transmission is rendered reliable.
FEC is a technology for transmitting data added with redundant bits, \by using convolutional coding or turbo coding so as to overcome errors generated under a noise or fading environment and thus demodulate initially transmitted data. In a mobile communication system using HARQ, a receiver determines whether data decoded by performing an FEC operation in the reverse order has errors by a Cyclic Redundancy Code (CRC) check. In the absence of errors in the decoded data, the receiver feeds back an ACKnowledgment (ACK) to a transmitter so that the transmitter can transmit the next data packet. In the presence of errors in the decoded data, the receiver feeds back a Negative-ACKnowledgment (NACK) to the transmitter so that the transmitter can retransmit the erroneous packet. The receiver then combines a retransmitted packet with an initially transmitted packet. The resulting energy gain leads to an improved performance, compared to a conventional ARQ without combining.
FIG. 1A illustrates the transmission timings of data and signals in the conventional HARQ technique.
Referring to FIG. 1A, the horizontal axis represents time, and a data packet is transmitted on a data channel, which initially takes place in step 101. A receiver then receives the initially transmitted data packet and demodulates it in step 102. During the demodulation, the receiver determines whether the received data packet has errors. If it is determined that the demodulation is not successful, the receiver feeds back a Non-ACKnowledgement (NACK) message to the transmitter. The error determination can be made by a CRC check.
Upon receipt of the NACK, the transmitter retransmits the data packet at a first time in step 103. Even though the transmitter retransmits the same data as the initially transmitted data, it may transmit a different redundancy, i.e. different coded bits during the first retransmission in step 103. The same data packets transmitted in steps 101, 103 and 105 will be referred to as “subpackets”. After receiving the first retransmitted data packet on the data channel, the receiver combines the initially transmitted data packet with the first retransmitted data by a rule and demodulates the combined data.
If the receiver determines that the demodulation has failed during the demodulation, it feeds back a NACK to the transmitter in step 104. The transmitter carries out a second retransmission a time after the first retransmission in step 105. The same packet data is encoded and transmitted during the initial transmission of step 101, the first retransmission of step 103 and the second retransmission of step 105.
After receiving the second retransmitted data, the receiver combines the initially transmitted data packet, the first retransmitted packet and the second retransmitted packet by the rule and demodulates the combined packet data. During the demodulation, the receiver determines whether the demodulation of the packet data is successful by a CRC check. If the demodulation is successful, the receiver feeds back an ACK to the transmitter in step 106. In step 107, the transmitter transmits an initial transmission subpacket of the next data packet to the receiver.
FIG. 1B is a block diagram of a transmitter and a receiver in a conventional OFDMA mobile communication system using HARQ.
Referring to FIG. 1B, in a transmitter 110, an encoder 111 encodes a data packet. A subpacket generator 112 selects all or part of the coded bits received from the encoder 111 and generates subpacket k with the selected coded bits, for a kth transmission. Here, k is 0 to m being a maximum retransmission number.
A transceiver chain 120 transmits subpacket k to a receiver 130 in a transmission/reception scheme such as OFDM.
In the receiver 130, a decoder 121 decodes subpacket k and feeds back an ACK or a NACK to the subpacket generator 112 of the transmitter 110 according to the decoding result.
The subpacket generator 112 of the transmitter 110 generates a retransmission version of the transmitted data packet, i.e. a retransmission subpacket or an initial transmission subpacket of a new data packet according to the feedback signal.
FIG. 2 illustrates a method for generating a subpacket using a circular buffer in a conventional mobile communication system.
Referring to FIG. 2, one code block 201 is a single data packet to be transmitted at a given time. For the input of the code block 201, an encoder 202 generates coded bits 203. The total number of the coded bits 203 is determined by the code rate of the encoder 202, a so-called mother code rate. The mother code rate is a term used for the code rate of the encoder 202 since all or part of the output of the encoder 202 is selected to generate a subpacket. The coded bits 203 are systematic bits S, first parity bits P1, and second parity bits P2, each of S, P1 and P2 being called a subblock. Subblock interleavers 204 interleave the subblocks of the systematic bits S, the first parity bits P1 and the second parity bits P2, respectively.
As illustrated in FIG. 2, the first parity bits P1 and the second parity bits P2 that were interleaved on a subblock basis are interlaced and then buffered in a circular buffer 205 or controlled with the same effect as if they were buffered in a circular buffer. As implied from the appellation of the circular buffer 205, bits are successively selected from the circular buffer 205 to configure a subpacket and after selection of the last buffered bit, bits are selected, returning to the first bit of the circular buffer 205. A transmitter generates a subpacket by selecting some successive bits from the circular buffer, and a receiver maps received coded bits to appropriate positions of a circular buffer with the same structure as that of the circular buffer used in the transmitter and decodes them.
In FIG. 2, reference numeral 206 denotes transmission of an initial transmission subpacket, reference numeral 207 denotes transmission of a first retransmission packet, i.e. a second subpacket, and reference numeral 208 denotes transmission of a second retransmission packet, i.e. a third subpacket.
FIG. 3 illustrates a conventional mapping between subpackets and resource blocks.
Referring to FIG. 3, reference numeral 301 denotes the output of the circular buffer 205 for a first code block, and reference numeral 302 denotes the output of the circular buffer 205 for a second code block. Each of the code blocks from the circular buffer 205 is composed of systematic bits and parity bits. Reference numeral 303 denotes a subpacket of the first code block, and reference numeral 304 denotes a subpacket of the second code block. The subpackets are interleaved independently, as indicated by reference numerals 305 and 306. Reference numeral 307 denotes the independently interleaved bits. Reference numeral 308 denotes mapping of the interleaved bits to available resources in time and frequency. The mapped coded bits are denoted by reference numeral 309. That is, reference numeral 309 denotes interleaved bits mapped to a first OFDM symbol.
In general, an OFDMA system transmits one data packet across a number of OFDM symbols and the time duration of the OFDM symbols is defined as a Transmission Time Interval (TTI). The first OFDM symbol refers to the first OFDM symbol of a TTI that carries a data packet. The number of coded bits transmitted in the first OFDM symbol is determined by the number of available subcarriers for data transmission and a modulation scheme.
Reference numeral 310 denotes a channel response in frequency. The vertical axis in the channel response represents channel strength. Therefore, a frequency in which the coded bits of the first code block are transmitted is in a good channel status, whereas a frequency in which the coded bits of the second code block are transmitted is in a bad channel status. This indicates that the receiver may receive the first code block with a high success probability and the second code block with a low success probability.
When a plurality of code blocks are transmitted during one TTI, it is typical in the HARQ system that a single ACK/NACK is fed back, instead of ACK/NACK feedbacks for the respective code blocks. For example, if coded bits for transmission in one OFDM symbol are selected from two code blocks and only one of the code blocks is successfully demodulated, the receiver feeds back a NACK. Then the transmitter selects coded bits again from previously transmitted two code blocks, generates all subpackets with the selected coded bits, and retransmits them. Therefore, it is preferable to transmit all code blocks over a constant channel in HARQ. However, because a real channel environment varies over time, the channel status may fluctuate over time as indicated by reference numeral 310 in FIG. 3. The significant channel status fluctuation in time leads to unnecessary retransmission between the transmitter and the receiver, thereby causing unnecessary resource consumption.